Button O Directive {@@} Operator
Syntax
{@@}
Description
The {@@} operator is used in a Button's owner draw (O) directive to specify that the button text contains embedded formatting commands.
Example
dlg_title = "Anchor Buttons" buttons1 = "{A=1}Sub-Button1{T=1.5}{A=2}Sub-Button2{T=3}{A=3}Sub-Button3" buttons2 = "{C=Black}{B=Win3D}"+buttons1 highlight = "{C=Black}{B=Win3D}" buttons3 = highlight + "{A=1}Sub-Button1{T=1.5}{A=2}Sub-Button2{T=3}{A=3}Sub-Button3" ui_dlg_box(dlg_title,<<%dlg% {watch=ui_dlg_control_anchor_from_pos(dlg_title)!mouse_move} {wrap=80} Anchor buttons are useful when you want to accurately position buttons on a dialog using owner draw strings with tab stops. For example, to position buttons over columns in an owner draw list box.; {lf}; This button does not specify background color and font color in the owner draw string. as a result, when the mouse is over the button, all of the logical "sub-buttons" are highlighted -- not the effect you would want.; {lf}; Button 1:; <%O={@@};B=M%=buttons1!button1>; {lf}; {line=1,0}; Button 2:; This button uses an owner draw string that includes a specification for the font color and background color. as a result, when the mouse is over the button, none of the logical "sub-buttons" are highlighted -- closer to the effect you might want, but still not perfect.; <%O={@@};B=M%=buttons2!button2>; {lf}; {line=1,0}; Button 3:; This button changes the owner draw string dynamically to indicate which "sub-button" the mouse is over. The key to this button is the ui_dlg_control_anchor_from_pos\() function which returns the current anchor under the mouse. We constantly watch the result of this function by setting up a watch event called "mouse_moved". ; <%O={@@};B=M%=buttons3!button3>; {line=1,0} %dlg%,<<%code% if a_dlg_button = "button1" then anchor = ui_dlg_control_anchor_from_pos(dlg_title) ui_msg_box("Note","You just clicked on sub-button " + anchor + " in Button 1") a_dlg_button = "" end if if a_dlg_button = "button2" then anchor = ui_dlg_control_anchor_from_pos(dlg_title) ui_msg_box("Note","You just clicked on sub-button " + anchor + " in Button 2") a_dlg_button = "" end if if a_dlg_button = "button3" then anchor = ui_dlg_control_anchor_from_pos(dlg_title) ui_msg_box("Note","You just clicked on sub-button " + anchor + " in Button 3") a_dlg_button = "" end if if a_dlg_button = "mouse_move" then current_anchor = ui_dlg_control_anchor_from_pos(dlg_title) a_dlg_button = "" if current_anchor = "1" then buttons3 = highlight + "{A=1}{F=Arial,8,U}Sub-Button1{F=Arial,8}{T=1.5}{A=2}Sub-Button2{T=3}{A=3}Sub-Button3" else if current_anchor = "2" then buttons3 = highlight + "{A=1}Sub-Button1{T=1.5}{A=2}{F=Arial,8,U}Sub-Button2{T=3}{F=Arial,8}{A=3}Sub-Button3" else if current_anchor = "3" then buttons3 = highlight + "{A=1}Sub-Button1{T=1.5}{A=2}Sub-Button2{T=3}{A=3}{F=Arial,8,U}Sub-Button3" else buttons3 = highlight + "{A=1}Sub-Button1{T=1.5}{A=2}Sub-Button2{T=3}{A=3}Sub-Button3" end if end if %code%)
See Also